Search using drag and drop of assets into a search bar

ABSTRACT

Various implementations enable a similarity search to be conducted for assets based upon one or more assets being dragged from a viewing area and dropped into a search field. Search results are returned in the form of assets and textual representations that define search parameters. The textual representations can be easily modified to change the search parameters and, hence, the displayed search results.

BACKGROUND

Searching for content in a digital environment can be a time-consumingtask. This task can be even more complicated based upon the type ofsearch conducted. For example, if a user has an image and they wish tosearch for and see similar images, they are often required to go througha complicated workflow that can include multiple manual steps such asnavigating a menu structure to access search functionality, enteringsearch terms and parameters, reviewing search results, and, if thesearch is not successful, repeating the same or different manual steps.This can be inefficient and can lead to an undesirable user experience.Accordingly, those who develop search technologies continue to facechallenges to streamline the user search experience and provide moreefficient and convenient methods for conducting searches.

SUMMARY

This Summary introduces a selection of concepts in a simplified formthat are further described below in the Detailed Description. As such,this Summary is not intended to identify essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

In one or more implementations, a digital medium environment isdescribed that includes a computing device having a content searchingapplication that includes a user interface to enable content searchingto be conducted. In this digital medium environment, a content searchingmethod is described. The user interface of the content searchingapplication receives selection of an asset having content such as video,images, text and the like. The content searching application ascertainsthat the asset has been dropped into a search field and, responsively,conducts a similarity search associated with the asset based uponmetadata associated with the asset. The content searching applicationthen displays search results in the form of additional assets, as wellas textual representations that define search parameters used for thesimilarity search. The textual representations enable a user to modifythe search results. For example, the user can delete one or more of thetextual representations to cause a supplemental search to be conductedor pare down the search results by removing assets that share metadatawith the deleted textual representation. The user can also addadditional textual representations to cause a supplemental search to beconducted.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.Entities represented in the figures may be indicative of one or moreentities and thus reference may be made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 is an illustration of a digital medium environment in an exampleimplementation that is operable to employ techniques described herein.

FIG. 2 illustrates an example content searching application inaccordance with one or more implementations.

FIG. 3 illustrates an example device displaying multiple assets that canform the basis of a similarity search in accordance with one or moreimplementations.

FIG. 4 illustrates the FIG. 3 device being used to conduct a similaritysearch in accordance with one or more implementations.

FIG. 5 illustrates the FIG. 3 device being used to conduct a similaritysearch in accordance with one or more implementations.

FIG. 6 is a flow diagram depicting an example procedure in accordancewith one or more implementations.

FIG. 7 is another flow diagram depicting an example procedure inaccordance with one or more implementations.

FIG. 8 is another flow diagram depicting an example procedure inaccordance with one or more implementations.

FIG. 9 illustrates an example system including various components of anexample device that can be employed for one or more searchimplementations described herein.

DETAILED DESCRIPTION

Overview

Content searching techniques are described that can greatly reduce thenumber of actions that a user has to perform in order to conduct asearch, such as a similarity search, or to modify returned searchresults. A similarity search is a search that uses one or more assets asa basis to find other assets that are similar, in some respect, to theassets used as the basis of the search. As used herein, an “asset”pertains to a visually displayable content item that can include one ormore of video, images or text. Oftentimes assets will have a geometrysuch as a square or rectangle, and will include within the geometry, animage and some type of descriptive text. For a video, the image may be athumbnail that visually encapsulates the video.

In one or more implementations, a digital medium environment isdescribed that includes a computing device having a content searchingapplication that includes a user interface to enable content searchingto be conducted. In this digital medium environment, the user interfaceof the content searching application receives selection of an assethaving content such as video, images, text and the like. The contentsearching application ascertains that the asset has been dropped into asearch field and, responsively, conducts a similarity search associatedwith the asset based upon metadata associated with the asset. Thecontent searching application then displays search results in the formof additional assets, as well as textual representations that definesearch parameters used for the similarity search. The textualrepresentations enable a user to modify the search results. For example,the user can delete one or more of the textual representations to causea supplemental search to be conducted or to pare down the search resultsby removing assets that share metadata with the deleted textualrepresentation. The user can also add additional textual representationsto cause a supplemental search to be conducted.

For example, assume that a user has opened their content searchingapplication and is viewing multiple different assets. One asset may beassociated with family photographs while another may be associated withbeach scenes. Each asset has metadata that describes characteristics andproperties of the asset. So, for example, the family photograph assetmay have metadata including “mom”, “dad”, “Smith family reunion”, andthe like. Similarly, the beach scenes asset may have metadata including“Pacific Coast”, “Atlantic Coast”, “Cape Cod”, and the like. The usermay select the beach scenes asset and drag and drop it into a searchfield of the content searching application. When this occurs, thecontent searching application automatically processes the metadataassociated with that asset and formulates keywords for a similaritysearch. The content searching application then performs the similaritysearch and returns assets having metadata associated with the keywordsas by being the same as or similar to the keywords. In this manner, auser need only perform a simple single action, e.g., a drag and dropaction, to cause the similarity search to be conducted. This relievesthe user of having to navigate through a complicated workflow includingnavigating a menu structure, typing in search terms and the like.Furthermore, in some implementations textual representations that definesearch parameters for the search are displayed and may be manipulated bythe user to cause a supplemental search to be performed, or to modifythe search results. For example, by deleting one or more of the textualrepresentations, the returned search results can be pared down byremoving assets that share metadata with the deleted textualrepresentation. The user may also add additional textual representationsto further modify the search results.

In this manner, the user search experience is greatly improved byreducing the number of actions the user has to perform to conduct asearch. The user is relieved of having to navigate what can sometimes bea complicated menu structure in order to perform a similarity search,which is particularly helpful in the context of small form factordevices. Furthermore, search results can be easily manipulated to morequickly arrive at a desired result set. The implementations describedbelow provide an intuitive and easy-to-understand process for conductingsearches.

In the following discussion, an example digital medium environment isfirst described that may employ the techniques described herein. Exampleimplementation details and procedures are then described which may beperformed in the example digital medium environment as well as otherenvironments. Consequently, performance of the example procedures is notlimited to the example environment and the example environment is notlimited to performance of the example procedures.

Example Digital Medium Environment

FIG. 1 is an illustration of a digital medium environment 100 in anexample implementation that is operable to employ techniques describedherein. As used herein, the term “digital medium environment” refers tothe various computing devices and resources that can be utilized toimplement the techniques described herein. The illustrated digitalmedium environment 100 includes a computing device 102 including aprocessing system 104 that may include one or more processing devices,one or more computer-readable storage media 106, and variousapplications 108 embodied on the computer-readable storage media 106 andoperable via the processing system 104 to implement correspondingfunctionality described herein. In at least some implementations,applications 108 may include a content searching application 109. Thecontent searching application 109 is configured to enable users toconduct content searches for content that may be stored locally in anasset repository 111, remotely in a remote asset repository 117, orboth. As noted above, an “asset” pertains to a visually displayablecontent item that can include one or more of video, images or text. Oneexample of a content searching application is a web browser which isoperable to access various kinds of web-based resources (e.g., contentand services). The applications 108 may also represent a client-sidecomponent having integrated functionality operable to access web-basedresources (e.g., a network-enabled application), browse the Internet,interact with online providers, and so forth. Applications 108 mayfurther include an operating system for the computing device and otherdevice applications. The content searching applications can includeapplications other than web browsers without departing from the spiritand scope of the claimed subject matter.

The computing device 102 may be configured as any suitable type ofcomputing device. For example, the computing device may be configured asa desktop computer, a laptop computer, a mobile device (e.g., assuming ahandheld configuration such as a tablet or mobile phone), a tablet, andso forth. Thus, the computing device 102 may range from full resourcedevices with substantial memory and processor resources (e.g., personalcomputers, game consoles) to a low-resource device with limited memoryand/or processing resources (e.g., mobile devices). Additionally,although a single computing device 102 is shown, the computing device102 may be representative of a plurality of different devices to performoperations “over the cloud” as further described in relation to FIG. 9.

The digital medium environment 100 further depicts one or more serviceproviders 112, configured to communicate with computing device 102 overa network 114, such as the Internet, to provide a “cloud-based”computing environment. Generally, speaking a service provider 112 isconfigured to make various resources 116 available over the network 114to clients. The resources can include one or more assets that areavailable from an asset repository 117. In some scenarios, users maysign up for accounts that are employed to access corresponding resourcesfrom a provider. The provider may authenticate credentials of a user(e.g., username and password) before granting access to an account andcorresponding resources 116. Other resources 116 may be made freelyavailable, (e.g., without authentication or account-based access). Theresources 116 can include any suitable combination of services and/orcontent typically made available over a network by one or moreproviders. Some examples of services include, but are not limited to, aphoto editing service, a web development and management service, acollaboration service, a social networking service, a messaging service,an advertisement service, and so forth. Content may include variouscombinations of assets, video comprising part of an asset, ads, audio,multi-media streams, animations, images, web documents, web pages,applications, device applications, and the like.

Various types of input devices and input instrumentalities can be usedto provide input to computing device 102. For example, the computingdevice can recognize input as being a mouse input, stylus input, touchinput, input provided through a natural user interface, and the like.Thus, the computing device can recognize multiple types of gesturesincluding touch gestures and gestures provided through a natural userinterface.

Having considered an example digital medium environment, consider now adiscussion of some example details of a content searching application inaccordance with one or more implementations.

Content Searching Application

FIG. 2 illustrates a system 200 that shows content searching application109 in more detail in accordance with one or more implementations. Thecontent searching application includes, in this example, a userinterface component 202 and a search engine 204. While the search engineis shown as being included as part of the content searching application109, the search engine can be implemented separately from the contentsearching application 109 and used to conduct searches in the mannerdescribed below. The search engine includes, in this example, a metadatatranslator 204 and an image analysis component 206.

The user interface component 202 is representative of functionality thatprovides a suitably-configured user interface to enable a user tointeract with and search for assets as described above and below.Interaction by way of the user interface can take place in any suitableway including, by way of example and not limitation, through inputdevices, touch input, gesture input, and the like. Example userinterfaces are described below in more detail in a section entitled“Example User Interface Experience.”

The search engine 204 is representative of functionality that enablessearches to be conducted, including similarity searches, as describedbelow in more detail. The metadata translator 204 translates metadataassociated with one or more assets selected by a user and formulateskeywords for searching. The keywords are then used to perform thesimilarity search and return assets having metadata associated with thekeywords as by being the same as or similar to the keywords. Themetadata can include any suitable type of metadata associated with anasset. Typically, metadata is “data about data” and can reside in anysuitable form. For example, the metadata can describe properties andcharacteristics of the asset. Such can include, by way of example andnot limitation, descriptive metadata that can be used for discovery andidentification such as objects appearing in an asset (people, kids,animals), asset subject (recreation, running, athletics), asset setting(home, work), keywords, and the like.

The image analysis component 206 is representative of functionality thatenables image analysis to be conducted on one or more assets in aparticular repository, such as a local asset repository 111, or a remoteasset repository 117 accessible by way of a network 114. The imageanalysis can be conducted prior to a search being initiated orcontemporaneously with a search being initiated. For example, a user mayhave a number of assets in a local repository. The image analysiscomponent 206 can perform image processing and analysis on those assetsto pre-index the assets before any search is conducted. Alternately oradditionally, when one or more assets are selected by a user to be thesubject of search, the image analysis component 206 can conduct imageanalysis on the asset or assets contemporaneously with the search. Theimage analysis process develops metadata that describes thecharacteristics and properties of the assets. When a search isconducted, these characteristics and properties can be utilized tosearch for other assets that have similar characteristics andproperties. The image analysis component can use any suitable type ofimage analysis techniques. Such techniques can include, by way ofexample and not limitation, object recognition, people recognition,facial identification, image segmentation, and the like.

When a search is conducted by the search engine 204, similar assets canbe returned from one or more repositories and displayed to a user by wayof the user interface component 202, as will be described below in moredetail.

Having discussed an example content searching application 109, considernow an example user interface that provides a user interface experiencein connection with a similarity search.

Example User Interface Experience

FIG. 3 illustrates an example device 300 that includes a display areawithin which content is displayed. In this particular example, thedisplay area includes a controls area 302 and a content display area304.

In the illustrated and described example, the controls area 302 displayscontrols typically associated with an application in the form of acontent browser, such as a web browser. Specifically, the controls areaincludes forward and backward navigation instrumentalities 306 and asearch field 308 in the form of a search box within which text can beentered and other content can be provided.

The content display area 304 includes a number of assets 310, 312, 314,316, 318, 320, 322, and 324. In this example, a user has touch-selectedasset 312, intending to use it as the subject of a similarity search.

FIG. 4 illustrates asset 312 being dragged into the search field 308 sothat it can be dropped or otherwise deposited into the search field. Inthis example, a small portion of the top of asset 312 overlaps with thesearch field 308. When the asset is deposited or dropped into the searchfield 308, as by the user lifting their finger, the metadata associatedwith the asset is automatically used to conduct a similarity search asmentioned above. That is, the metadata is used to formulate keywordsthat are then used for a similarity search. So, for example, themetadata might include “cars”, “race cars”, “Corvette” and the like.This metadata can then be used as keywords for a similarity search. Inaddition, to facilitate the efficiency of a particular search and toenable a user to dynamically direct or redirect a search, the metadatacan be exposed to the user as textual representations in the form oftags, to enable the user to manipulate the metadata to dynamicallymodify the search results. Textual representations, other than tags, canbe utilized without departing from the spirit and scope of the claimedsubject matter. Consider now FIG. 5 which utilizes like numerals fromFIGS. 3 and 4 to depict like elements.

There, the content display area 304 includes a tag bar 500. The tag barincludes a plurality of tags derived from the metadata of assetsselected by the user. In this particular example there are four tags502, 504, 506, and 508 and a “clear all” selection to clear the tags.

Each of the tags includes a user interface instrumentality that can beselected by a user to delete the tag. In this particular example, theuser instrumentality resides in the form of an “X”. If the user selectsa tag's “X”, that particular tag is deleted and the search results canbe modified to remove any assets that might have that particular tag andreplace the assets with new assets in one or more of the grayed-outlocations around asset 312. Likewise, the tag bar 500 includes a userinstrumentality 514 that allows a user to add a tag. So, for anyparticular similarity search, if the user wishes to modify the search,the user can select instrumentality 514 and provide one or moreadditional tags that are used to update the search results. Being ableto both delete individual tags and add additional tags provides apowerful search mechanism for the user.

In this manner, a user can easily conduct a search by simply draggingand dropping an asset into search field 308. Moreover, by using a tagbar such as tag bar 500, the user can quickly and efficientlydynamically modify the parameters of the search. They can do this byquickly removing one or more tags, by adding tags to redirect the searchor both. The above description constitutes but one way in which a usercan modify the parameters associated with conducting a similaritysearch. Other modification techniques can be used. As an example,consider the following.

When assets that are a result of a similarity search are displayed inthe content display area 304, a user can modify the parametersassociated with the search and cause a supplemental search to beperformed by dragging an asset out of the content display area 304. Forexample, a user may conduct a simple touch and swipe gesture to sweepthe asset out of the content display area 304. When the asset is sweptout of the content display area 304, the search engine can analyze themetadata associated with that particular asset and can conduct a new orsupplemental similarity search to return a new or updated set of assetsto be displayed in the grayed-out locations. So, for example, if anasset is removed from the content display area, the search engine mayascertain that the primary difference between the removed asset and theassets that remain is that the removed asset included the metadata“beach.” From this, the search engine may make a decision that the userwishes to remove any assets that include the metadata “beach.”Accordingly, those assets could be removed and a supplemental searchcould be conducted based on the remaining tags. Similarly, if the userquickly removes a plurality of assets, the search engine can analyzeeach of the removed assets to ascertain similarities between theassociated metadata. Based on the similarities in metadata, the searchengine can ascertain that assets that share similar metadata are not ofinterest to the user in this particular search. Therefore, thoseremaining assets that share similar metadata can be removed and anupdated or supplemental search can be conducted. In this manner, theuser can, in a sense, train their search. In effect, this approachconstitutes what can be considered as a “subtractive” approach in whichassets are removed to further modify the search.

As another example of how a user can modify their search, consider thefollowing. When the user is presented with search results in the contentdisplay area 304, the user can further refine their search by draggingone or more of the returned assets into the search field 308. When thisoccurs, the metadata associated with these newly dragged assets can beused to conduct an updated or supplemental search. By virtue of beingdragged into the search field 308, an assumption is made that the userconsiders these assets to be closer in substance to the user's desiredsearch results. Accordingly, the metadata associated with thesenewly-dragged assets can be weighted more heavily or processed in amanner in which updated assets are returned that more closely track withthe metadata associated with the newly-dragged assets. In effect, thisapproach can be considered as an “additive” approach in whichpreviously-returned assets are added to the search field 308 to furtherbolster or strengthen the search results returned for the particularsearch.

In at least some implementations, and particularly those that usegesture-based operations, a user is able to not only quickly andefficiently conduct an initial search, but the user can modify theirsearch in a robust and text free manner.

Furthermore, in at least some implementations, the subtractive andadditive approaches described above can be used either with or withoutthe tags that appear in tag bar 500. In subtractive and additiveapproaches that do not use the tag bar, search modification occurs in apurely visual, text-free manner based simply upon the content that isvisually ascertained by the user in each asset.

Having considered various search implementations, consider now someexample procedures that can be utilized.

Example Procedures

This section describes example procedures for conducting searches inaccordance with various implementations. Aspects of the procedures maybe implemented in hardware, firmware, or software, or a combinationthereof. The procedures are shown as a set of blocks that specifyoperations performed by one or more devices and are not necessarilylimited to the orders shown for performing the operations by therespective blocks. In at least some implementations the procedures maybe performed in a digital medium environment by a suitably configureddevice, such as the example computing device 102 of FIG. 1 that makesuse of a content searching application 109, such as that describedabove.

FIG. 6 depicts an example procedure 600 in which a similarity search canbe conducted to return search results that include assets that aresimilar, in some manner, to one or more assets selected by a user. Aselection of an asset is received (block 602). Selection can occur inany suitable way, examples of which are provided above. The assets isascertained to have been dropped into a search field (block 604).Responsive to being dropped into the search field, a similarity searchassociated with the asset is conducted based upon metadata associatedwith the asset (block 606). In some implementations, this can be done byusing the metadata to formulate keywords and then using the keywords tocompare with metadata of other assets. Assets that have metadata that isassociated with the keywords as by being the same as or similar to thekeywords can be included in a search results set. Search results arethen displayed in the form of additional assets (block 608). Textualrepresentations that define search parameters used for the similaritysearch are displayed (block 610). Examples of textual representations,such as tags, are provided above. Tags constitute but one form oftextual representations. As such, other textual representations can beutilized without departing from the spirit and scope of the claimedsubject matter. The textual representations can not only provideinformation to inform the user of the basis of the search, but in someimplementations can be used to modify the search as described above andbelow.

FIG. 7 depicts an example procedure 700 in which a similarity search canbe conducted to return search results that include assets that aresimilar, in some manner, to one or more assets selected by a user. Tagsare displayed along with the search results to enable manipulation ofthe similarity search. A touch-selection of an asset having visualcontent is received (block 702). Selection can occur in any suitableway, examples of which are provided above. The visual content caninclude, in some implementations, an image or images. The asset isdetected to have been dropped into a search field (block 704).Responsive to being dropped into the search field, a similarity searchassociated with the asset is conducted based upon metadata associatedwith the one or more assets (block 706). In some implementations, thiscan be done by using the metadata to formulate at least one keyword andthen using the keyword to compare with metadata of other assets. Assetsthat have metadata that is associated with the keywords as by being thesame as or similar to the keywords can be included in a search resultsset. Search results are generated and comprise additional assets havingvisual content (block 708). The generated search results can then bedisplayed. At least one manipulable tag associated with metadata used toconduct the similarity search is displayed (block 710). The manipulabletag can enable a user to dynamically modify search parameters and,hence, the search results. For example, to cause a supplemental searchto be conducted, a user can delete one or more tags as described above.Similarly, the user can add one or more tags to cause a supplementalsearch to be conducted.

FIG. 8 depicts an example procedure 800 in which a similarity search canbe conducted to return search results that include assets that aresimilar, in some manner, to one or more assets selected by a user.Non-textual input can be received to further cause an additionalsupplemental search. A selection of an asset having visual content isreceived (block 802). Selection can occur in any suitable way, examplesof which are provided above. The visual content can include, in someimplementations, an image or images. The asset is detected to have beendropped into a search field (block 804). Responsive to detecting thatthe asset has been dropped into the search field, a similarity searchassociated with the asset is conducted based upon metadata associatedwith the asset (block 806). This can be done by using the metadata toformulate at least one keyword to conduct the similarity search tosearch for assets that have metadata that is associated with the keywordas by being the same as or similar to the keyword. Search resultscomprising additional assets having visual content are then displayed(block 808). Non-textual input associated with a supplemental similaritysearch is received (block 810). Any suitable non-textual input can bereceived. For example, the non-textual input can include gestural inputthat removes one or more assets. Alternately or additionally, thenon-textual input can include gestural input that drags and drops asearch result asset into the search field to further refine thesimilarity search. Responsive to receiving the non-textual input, asupplemental similarity search is conducted and updated search resultsare displayed (block 812).

Having described example procedures in accordance with one or moreimplementations, consider now an example system and device that can beutilized to implement the various techniques described herein.

Example System and Device

FIG. 9 illustrates an example system generally at 900 that includes anexample computing device 902 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. This is illustrated through inclusion ofapplications 108 including the content searching application 109, whichoperates as described above. The computing device 902 may be, forexample, a server of a service provider, a device associated with aclient (e.g., a client device), an on-chip system, and/or any othersuitable computing device or computing system.

The example computing device 902 is illustrated includes a processingsystem 904, one or more computer-readable media 906, and one or more I/Ointerface 908 that are communicatively coupled, one to another. Althoughnot shown, the computing device 902 may further include a system bus orother data and command transfer system that couples the variouscomponents, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 904 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 904 is illustrated as including hardware elements 910 that may beconfigured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 910 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable storage media 906 is illustrated as includingmemory/storage 912. The memory/storage 912 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 912 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 912 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 906 may be configured in a variety of other waysas further described below.

Input/output interface(s) 908 are representative of functionality toallow a user to enter commands and information to computing device 902,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 902 may be configured in a variety of ways as further describedbelow to support user interaction.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 802. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” refers to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media does not include signals per se orsignal bearing media. The computer-readable storage media includeshardware such as volatile and non-volatile, removable and non-removablemedia and/or storage devices implemented in a method or technologysuitable for storage of information such as computer readableinstructions, data structures, program modules, logic elements/circuits,or other data. Examples of computer-readable storage media may include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, hard disks, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or other storage device,tangible media, or article of manufacture suitable to store the desiredinformation and which may be accessed by a computer.

“Computer-readable signal media” refers to a signal-bearing medium thatis configured to transmit instructions to the hardware of the computingdevice 802, such as via a network. Signal media typically may embodycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 910 and computer-readablemedia 906 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some implementations to implement at least some aspects ofthe techniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 910. The computing device 902 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device902 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements910 of the processing system 904. The instructions and/or functions maybe executable/operable by one or more articles of manufacture (forexample, one or more computing devices 902 and/or processing systems904) to implement techniques, modules, and examples described herein.

The techniques described herein may be supported by variousconfigurations of the computing device 902 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 914 via a platform 916 as describedbelow.

The cloud 914 includes and/or is representative of a platform 916 forresources 918. The platform 916 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 914. Theresources 918 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 902. Resources 918 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 916 may abstract resources and functions to connect thecomputing device 902 with other computing devices. The platform 916 mayalso serve to abstract scaling of resources to provide a correspondinglevel of scale to encountered demand for the resources 918 that areimplemented via the platform 916. Accordingly, in an interconnecteddevice implementation, functionality described herein may be distributedthroughout the system 900. For example, the functionality may beimplemented in part on the computing device 902 as well as via theplatform 916 that abstracts the functionality of the cloud 914.

CONCLUSION

Various implementations enable a similarity search to be conducted forassets based upon one or more assets being dragged from a viewing areaand dropped into a search field. Search results are returned in the formof assets and textual representations that define search parameters. Thetextual representations can be easily modified to change the searchparameters and, hence, the displayed search results.

In one or more implementations, when one or more assets are dropped intoa search field, a search engine processes metadata associated with theasset(s) to formulate keywords that can be used to search for similarassets. Furthermore, in at least some implementations, the search enginecan perform image analysis on an asset to then formulate a searchstrategy.

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. A method implemented in a digital medium environment including a computing device having a processor and a content searching application that includes a user interface to enable content searching to be conducted, the method comprising: performing, by the content searching application, image processing to pre-index assets for searching; detecting, by the content searching application, that an initial asset of the assets having content is received by a search field; performing, by the content searching application, an image analysis on the initial asset and developing metadata associated with the initial asset; conducting, by the content searching application, a similarity search associated with the initial asset by using the metadata to formulate at least one keyword to conduct the similarity search to search for one or more additional assets having metadata associated with the at least one keyword; displaying, by the content searching application, returned search results including the one or more additional assets and one or more tags in a tag bar of the user interface, the one or more tags representing the metadata of the one or more additional assets; detecting, by the content searching application, that an additional asset having content is received by the search field and that at least one of the one or more tags is manipulated to modify search parameters; returning, by the content searching application, updated assets by weighting metadata associated with the additional asset more heavily so that the updated assets refine the search results to be more similar to the additional asset; and displaying, by the content searching application, the updated assets by removing assets from the updated assets that share metadata.
 2. The method as described in claim 1, wherein the one or more additional assets include one or more of a video, an image, or text.
 3. The method as described in claim 1, wherein the detecting that the initial asset having content is received by the search field comprises receiving a touch selection.
 4. The method as described in claim 1, wherein the at least one of the one or more tags is manipulated by a deletion of the at least one tag.
 5. The method as described in claim 1, wherein detecting that the initial asset having content is received by the search field includes recognizing a gestural input via the user interface.
 6. The method as described in claim 1, wherein displaying the returned search results includes displaying a textual representation of the at least one keyword.
 7. The method as described in claim 1, further comprising removing assets from the updated assets that have a particular tag of the one or more tags.
 8. In a digital medium environment in which a computing device is configurable to use a content searching application that includes a user interface to enable content searching to be conducted, one or more computer-readable storage media comprising instructions that are stored thereon that, responsive to execution by the computing device, perform operations comprising: performing image processing to pre-index assets for searching; detecting that an initial asset of the assets having visual content has been received by a search field based at least partially on receiving a selection of the initial asset by recognizing a gestural input via the user interface; performing an image analysis on the initial asset and developing metadata associated with the initial asset; conducting a similarity search associated with the initial asset based on the metadata associated with the initial asset by using the metadata to formulate at least one keyword to conduct the similarity search to search for one or more additional assets that have metadata that is associated with the at least one keyword; displaying returned search results including the one or more additional assets and a textual representation of the at least one keyword; detecting that an additional asset having visual content has been received by the search field and that the textual representation of the at least one keyword has been modified to change search parameters; returning updated assets by weighting metadata associated with the additional asset more heavily so that the updated assets refine the search results to be more similar to the additional asset; and displaying the updated assets by removing assets from the updated assets that share metadata.
 9. The one or more computer-readable storage media as described in claim 8, wherein the one or more additional assets include one or more of a video, an image, or text.
 10. The one or more computer-readable storage media as described in claim 8, wherein displaying the returned search results comprises displaying the returned search results in a content display area including a tag bar.
 11. The one or more computer-readable storage media as described in claim 10, wherein the tag bar includes at least one tag representing the metadata of the one or more additional assets.
 12. The one or more computer-readable storage media as described in claim 8, wherein the gestural input includes a touch selection.
 13. The one or more computer-readable storage media as described in claim 8, the operations further comprising removing assets from the updated assets that have a particular tag.
 14. The one or more computer-readable storage media as described in claim 8, wherein the one or more additional assets include at least one image having text.
 15. A system implemented in a digital medium environment including a computing device having a content searching application that includes a user interface to enable content searching to be conducted, the system comprising: a processor; one or more computer readable media storing instructions executable via the processor to perform operations comprising: performing, via the content searching application, image processing to pre-index assets for searching; detecting, via the content searching application, that an initial asset of the assets having visual content has been dropped into a search field; performing, via the content searching application, an image analysis on the initial asset and developing metadata associated with the initial asset; conducting, via the content searching application, a similarity search associated with the initial asset by using the metadata to formulate at least one keyword to conduct the similarity search to search for one or more additional assets that have metadata that is associated with the at least one keyword; displaying, via the user interface, search results including the one or more additional assets and a textual representation of the at least one keyword; detecting, via the content searching application, that an additional asset having visual content has been dropped into the search field and that the textual representation of the at least one keyword has been modified to change search parameters; returning, via the content searching application, updated assets by weighting metadata associated with the additional asset more heavily so that the updated assets refine the search results to be more similar to the additional asset; and displaying, via the content searching application, the updated assets by removing assets from the updated assets that share metadata.
 16. The system as described in claim 15, wherein the detecting that the initial asset having the visual content has been dropped into the search field comprises receiving a touch selection.
 17. The system as described in claim 15, wherein the one or more additional assets include one or more of a video, an image, or text.
 18. The system as described in claim 15, wherein the one or more additional assets include at least one image having text.
 19. The system as described in claim 15, wherein displaying the search results comprises displaying the search results in a content display area including a tag bar.
 20. The system as described in claim 15, the operations further comprising removing assets from the updated assets that have a particular tag. 